<?php

declare(strict_types=1);

namespace common\utils;

class Convert
{
    /**
     * 递归处理长数字转字符串
     */
    public static function longNumbersToString(mixed $value): mixed
    {
        if (is_array($value)) {
            return array_map([__CLASS__, 'longNumbersToString'], $value);
        }
        if (is_object($value)) {
            if (method_exists($value, 'toArray')) {
                return self::longNumbersToString($value->toArray());
            }
            return (array)$value;
        }
        if (is_numeric($value) && strlen((string)$value) > 15) {
            return (string)$value;
        }
        return $value;
    }
}